package com.cn.wanxi.thread.phone;

import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;

/**
 * 手机100部
 */
public class MyPhone implements Runnable {
    // 手机的数量
    private int phoneNum = 100;

    //private  String aa="aa";
    @Override
    public synchronized void run() {
// 因为我们不知道什么时候预定完，所以需要设定一个条件退出
        Lock lock = new ReentrantLock();//对不同的runable传入同一个lock
        lock.lock();
        while (true) {
            try {
                Thread.sleep(100);

//            synchronized (aa) {
                if (phoneNum > 0) {
                    System.out.println(Thread.currentThread().getName() + "卖出了一部手机，还剩余" + --phoneNum + "部手机");
                } else {
                    System.out.println("很遗憾，手机已经全部预定完，请下次再来");
                    return;
                }
//            }
            } catch (InterruptedException e) {
                e.printStackTrace();
            } finally {
                lock.unlock();
            }

        }

    }
}